Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - [VB.NET] Come verificare se un processo č aperto.
Forum - C# / VB.NET - [VB.NET] Come verificare se un processo č aperto.

Avatar
Robertof (Ex-Member)
Newbie


Messaggi: 3
Iscritto: 10/07/2008

Segnala al moderatore
Postato alle 10:59
Domenica, 10/08/2008
Questo topic č stato chiuso dal moderatore

Buongiorno a tutti, sto facendo un sistema di installazione automatica degli update di un programma che ho fatto, ma ora mi sorge un problema.
In pratica se l'utente lascia il programma aperto giustamente il programma di installazione da un eccezione. Mi servirebbe un qualcosa che verifica se quel processo č aperto. Al massimo potrei fare un catch per poi mostrare all'utente una msgbox che dice che appunto ha lasciato il programma aperto.
Spero di essere stato chiaro.
Saluti :)

PM
Avatar
punkettone90 (Member)
Expert


Messaggi: 279
Iscritto: 16/05/2007

Segnala al moderatore
Postato alle 11:33
Domenica, 10/08/2008
usando il namespace System.Diagnostics hai a disposizione la classe process che ti permette di ottenere tutti i processi attivi in quel momento che hanno quel determinato nome, se vedi che i processi con il nome del tuo programma sono 2 (quello appena aperto + quello vecchio da terminare) allora puoi avvertire l'utente dicendoglii di chiudere il vecchio processo.
se proprio vuoi fare una cosa pių bella allora tramite gli id di processo puoi fare in modo che sia il nuovo processo ad arrangiarsi a terminare quello vecchio

:k:

PM
Avatar
Robertof (Ex-Member)
Newbie


Messaggi: 3
Iscritto: 10/07/2008

Segnala al moderatore
Postato alle 16:32
Domenica, 10/08/2008
Allora, grazie a Totem che ha corretto numerosi miei errori sono riuscito a risolvere :D
Ecco il codice per chi lo cercasse:
Codice sorgente - presumibilmente VB.NET

  1. Dim processo() As Process
  2.  
  3.             processo = Process.GetProcessesByName("Nome Processo Senza L'estensione Alla Fine", My.Computer.Name)
  4.        
  5.             If processo.Length > 0 Then
  6.                 MsgBox("Messaggio che dice l'errore del processo gia' aperto")
  7.                 Me.Close()
  8.                 Exit Sub
  9.             End If


Ultima modifica effettuata da Robertof il 11/08/2008 alle 12:11
PM
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 10:40
Lunedė, 11/08/2008
Notare il "Nome_Processo..." che ti fa sforare la pagina :rotfl:

Se non c'č niente altro da dire, chiudo.

PM
Avatar
Robertof (Ex-Member)
Newbie


Messaggi: 3
Iscritto: 10/07/2008

Segnala al moderatore
Postato alle 11:55
Lunedė, 11/08/2008
Chiudi pure, ormai il problema č risolto ^^
PS: Ho corretto il testo che faceva allargare il layout del forum

Ultima modifica effettuata da Robertof il 11/08/2008 alle 12:11
PM